home *** CD-ROM | disk | FTP | other *** search
/ Whiteline: Alpha / Whiteline Alpha.iso / gemini / man / cat1 / mupfel.1 < prev   
Encoding:
Text File  |  1994-09-22  |  31.6 KB  |  644 lines

  1. MUPFEL(1)                  Benutzerkommandos                  MUPFEL(1)
  2.  
  3. N✓NA✓AM✓ME✓E
  4.      mupfel - Kommandointerpreter und interaktive Shell
  5.  
  6. S✓SY✓YN✓NO✓OP✓PS✓SI✓IS✓S
  7.      mupfel [-aCefhiklnrtSuvx] [ _✓K_✓o_✓m_✓m_✓a_✓n_✓d_✓o_✓d_✓a_✓t_✓e_✓i [ _✓A_✓r_✓g_✓u_✓m_✓e_✓n_✓t... ]]
  8.      mupfel -c [-aCefhiklnrtSuvx] _✓Z_✓e_✓i_✓c_✓h_✓e_✓n_✓k_✓e_✓t_✓t_✓e [ _✓N_✓a_✓m_✓e [ _✓A_✓r_✓g_✓u_✓m_✓e_✓n_✓t... ] ]
  9.      mupfel -s [-aCefhiklnrtSuvx] [ _✓A_✓r_✓g_✓u_✓m_✓e_✓n_✓t... ]
  10.  
  11. B✓BE✓ES✓SC✓CH✓HR✓RE✓EI✓IB✓BU✓UN✓NG✓G
  12.      Die m✓mu✓up✓pf✓fe✓el✓l ist ein Kommandointerpreter, der Anweisungen vom Termi-
  13.      nal oder aus einer Datei entgegennimmt und ausführt. Sie richtet 
  14.      sich nach den Vorgaben der POSIX-Norm (P1003.2: _✓S_✓h_✓e_✓l_✓l_✓s_✓ _✓a_✓n_✓d_✓ _✓U_✓t_✓i_✓l_✓i_✓-
  15.      _✓t_✓i_✓e_✓s) und ähnelt daher historischen Vorbildern wie der _✓B_✓o_✓u_✓r_✓n_✓e_✓ _✓S_✓h_✓e_✓l_✓l 
  16.      (s✓sh✓h(1)), ✓ _✓B_✓o_✓u_✓r_✓n_✓e_✓-_✓A_✓g_✓a_✓i_✓n_✓ _✓S_✓h_✓e_✓l_✓l (b✓ba✓as✓sh✓h(1)) oder _✓K_✓o_✓r_✓n_✓ _✓S_✓h_✓e_✓l_✓l (k✓ks✓sh✓h(1)). 
  17.      Abweichungen gibt es in den Bereichen, in denen volle Kompatibili-
  18.      tät zwischen TOS und POSIX nicht erreichbar ist.
  19.  
  20.  ✓  ✓ A✓Au✓uf✓fr✓ru✓uf✓f
  21.      Wenn die m✓mu✓up✓pf✓fe✓el✓l Bestandteil von Gemini ist oder die Environmentva-
  22.      riable M✓MU✓UP✓PF✓FE✓EL✓L_✓_P✓PR✓RO✓OF✓FI✓IL✓LE✓E_✓_R✓RE✓EA✓AD✓D nicht gesetzt ist, werden zunächst 
  23.      folgende Dateien ausgeführt:
  24.  
  25.           Systemprofile ('profile'): wird nacheinander in den durch die 
  26.           Environmentvariablen E✓ET✓TC✓CD✓DI✓IR✓R bzw. E✓ET✓TC✓C angegebenen Verzeichnis-
  27.           sen und dann in \etc gesucht.
  28.  
  29.           Userprofile (ebenfalls 'profile'): wird im durch die Variable 
  30.           H✓HO✓OM✓ME✓E spezifierten Verzeichnis gesucht.
  31.  
  32.      Anderenfalls wird -- wenn die Shell interaktiv ist -- die Datei 
  33.      'mupfel.rc' im durch H✓HO✓OM✓ME✓E spezifizierten Verzeichnis ausgeführt. 
  34.      Achtung: der mit den Standard-Gemini-Distributionen ausgelieferte 
  35.      'profile' sorgt selbst für das Einlesen von 'mupfel.rc'.
  36.  
  37.      In Gemini wird anschließend noch die Datei 'gemini.mup' 
  38.      abgearbeitet.
  39.  
  40.      Damit ergibt sich folgende 'Aufgabenverteilung':
  41.  
  42.      profile        Allgemeine Initialisierungen, Environmentvariablen, 
  43.                     Programme, die beim ersten Start der Mupfel einmal 
  44.                     gestartet werden sollen.
  45.  
  46.      mupfel.rc      Dinge, die in jeder nachgestarteten Shell passieren 
  47.                     sollen und nicht vererbt werden (Aliase, Shellfunk-
  48.                     tionen, Funktionstastenbelegungen usw.).
  49.  
  50.      gemini.mup     (nur in Gemini) Automatisch zu startende GEM-
  51.                     Applikationen.
  52.  
  53. O✓OP✓PT✓TI✓IO✓ON✓NE✓EN✓N
  54.      Neben den auch per s✓se✓et✓t(1m) einstellbaren Shellflags können beim 
  55.      Aufruf folgende Optionen übergeben werden:
  56.  
  57.      -c _✓Z_✓e_✓i_✓c_✓h_✓e_✓n_✓k_✓e_✓t_✓t_✓e
  58.           Die in der _✓Z_✓e_✓i_✓c_✓h_✓e_✓n_✓k_✓e_✓t_✓t_✓e angebenen Kommandos ausführen. Die_✓ 
  59.           _✓P_✓o_✓s_✓i_✓t_✓i_✓o_✓n_✓s_✓p_✓a_✓r_✓a_✓m_✓e_✓t_✓e_✓r werden mit den zusätzlich übergebenen Ope-
  60.           randen besetzt. Man beachte, daß die _✓Z_✓e_✓i_✓c_✓h_✓e_✓n_✓k_✓e_✓t_✓t_✓e nur ein 
  61.           Argument ist!
  62.  
  63.           Hinweis: normalerweise ist die Libraryfunktion s✓sy✓ys✓st✓te✓em✓m(2) auf 
  64.           diese Art und Weise implementiert.
  65.  
  66.      -i   Die aufgerufene Shell ist _✓i_✓n_✓t_✓e_✓r_✓a_✓k_✓t_✓i_✓v.
  67.  
  68.      -s   Wenn dieses Flag gesetzt ist oder keine _✓A_✓r_✓g_✓u_✓m_✓e_✓n_✓t_✓e angegeben 
  69.           sind, liest die Shell die Kommandos von der Standardeingabe 
  70.           ein. Damit kann man auch interaktiven Shells _✓P_✓o_✓s_✓i_✓t_✓i_✓o_✓n_✓s_✓p_✓a_✓r_✓a_✓m_✓e_✓-
  71.           _✓t_✓e_✓r übergeben.
  72.  
  73.      --   Kann als Trennzeichen zwischen Optionen und Operanden einge-
  74.           setzt werden.
  75.  
  76. O✓OP✓PE✓ER✓RA✓AN✓ND✓DE✓EN✓N
  77.      -    Ein einfacher Bindestrich wird als erster Operand erkannt und 
  78.           dann ignoriert.
  79.  
  80. XXX: tut's das?    
  81.  
  82.      _✓A_✓r_✓g_✓u_✓m_✓e_✓n_✓t
  83.           Auf diese Werte werden die _✓P_✓o_✓s_✓i_✓t_✓i_✓o_✓n_✓s_✓p_✓a_✓r_✓a_✓m_✓e_✓t_✓e_✓r gesetzt.
  84.  
  85.      _✓K_✓o_✓m_✓m_✓a_✓n_✓d_✓o_✓d_✓a_✓t_✓e_✓i
  86.           Der Name einer Datei mit Kommandos. Wenn der Name Pfadtrenn-
  87.           zeichen enthält, dann wird die Datei direkt eingelesen. Ande-
  88.           renfalls wird die Datei im aktuellen Verzeichnis gesucht. Wenn 
  89.           sie auch dort nicht gefunden wird, wird die normale Suche 
  90.           anhand der Variable P✓PA✓AT✓TH✓H vorgenommen.
  91.  
  92.           Außerdem wird der spezielle _✓P_✓a_✓r_✓a_✓m_✓e_✓t_✓e_✓r 0 auf den Wert _✓K_✓o_✓m_✓-
  93.           _✓m_✓a_✓n_✓d_✓o_✓d_✓a_✓t_✓e_✓i gesetzt. Wenn dieser Operand nicht explizit ange-
  94.           geben wurde, wird stattdessen der Name der Shell eingesetzt.
  95.  
  96.      _✓N_✓a_✓m_✓e
  97.           Auf diesen Namen wird der spezielle _✓P_✓a_✓r_✓a_✓m_✓e_✓t_✓e_✓r 0 gesetzt. Wenn 
  98.           er nicht angegeben wurde, wird stattdessen der Name der Shell 
  99.           eingesetzt.
  100.  
  101.      _✓Z_✓e_✓i_✓c_✓h_✓e_✓n_✓k_✓e_✓t_✓t_✓e
  102.           Eine Zeichenkette mit einem oder mehreren auszuführenden Kom-
  103.           mandos. Wenn sie leer ist, wird die Shell mit Rückgabewert 0 
  104.           beendet.
  105.  
  106. D✓DE✓EF✓FI✓IN✓NI✓IT✓TI✓IO✓ON✓NE✓EN✓N
  107.      Ein _✓B_✓l_✓a_✓n_✓k ist ein Leerzeichen oder ein Tabulatorzeichen.
  108.  
  109.      Ein _✓W_✓o_✓r_✓t ist eine Folge von Zeichen, die von der Shell als ein 
  110.      einziges Objekt behanelt wird.
  111.  
  112.      Ein _✓B_✓e_✓z_✓e_✓i_✓c_✓h_✓n_✓e_✓r ist ein _✓W_✓o_✓r_✓t, das nur Buchstaben, Ziffern oder 
  113.      Underscores ('_') besteht und mit einem Buchstaben oder einer 
  114.      Ziffer beginnt.
  115.  
  116.      Ein _✓P_✓a_✓r_✓a_✓m_✓e_✓t_✓e_✓r ist ein _✓B_✓e_✓z_✓e_✓i_✓c_✓h_✓n_✓e_✓r, eine Ziffer, oder eines der 
  117.      folgenden Zeichen:
  118.  
  119.            * @ # ? - $ !
  120.  
  121.      Ein _✓M_✓e_✓t_✓a_✓z_✓e_✓i_✓c_✓h_✓e_✓n ist ein Symbol, das, wenn es nicht gequotet ist, 
  122.      _✓W_✓o_✓r_✓t_✓e voneinander trennt:
  123.  
  124.           | & ; ( ) < > _✓B_✓l_✓a_✓n_✓k
  125.  
  126.      Ein _✓K_✓o_✓n_✓t_✓r_✓o_✓l_✓l_✓s_✓y_✓m_✓b_✓o_✓l ist ein _✓W_✓o_✓r_✓t, das eine spezielle Funktion hat:
  127.  
  128.           || & && ; ;; ( ) | <Zeilenende>
  129.  
  130. S✓SP✓PR✓RA✓AC✓CH✓HB✓BE✓ES✓SC✓CH✓HR✓RE✓EI✓IB✓BU✓UN✓NG✓G
  131.  ✓  ✓ E✓Ei✓in✓nf✓fa✓ac✓ch✓he✓e ✓ K✓Ko✓om✓mm✓ma✓an✓nd✓do✓os✓s
  132.      Ein _✓e_✓i_✓n_✓f_✓a_✓c_✓h_✓e_✓s_✓ _✓K_✓o_✓m_✓m_✓a_✓n_✓d_✓o ist eine durch ein _✓K_✓o_✓n_✓t_✓r_✓o_✓l_✓l_✓s_✓y_✓m_✓b_✓o_✓l abge-
  133.      schlossene Folge optionalen Variablenzuweisungen und von nicht-
  134.      leeren, voneinander durch _✓B_✓l_✓a_✓n_✓k_✓s getrennten _✓W_✓o_✓r_✓t_✓e_✓n und _✓U_✓m_✓l_✓e_✓n_✓k_✓u_✓n_✓g_✓e_✓n. 
  135.      Dabei gibt das erste Wort den Namen des auszuführenden Kommandos 
  136.      an. Außer in den unten angegebenen Fällen werden die restlichen 
  137.      Worte dem Kommando als Argumente übergeben (der Kommandoname wird 
  138.      als Argument 0 übergeben).
  139.  
  140.      Der _✓R_✓ü_✓c_✓k_✓g_✓a_✓b_✓e_✓w_✓e_✓r_✓t eines _✓E_✓i_✓n_✓f_✓a_✓c_✓h_✓k_✓o_✓m_✓m_✓a_✓n_✓d_✓o_✓s ist der Rückgabewert des 
  141.      ausgeführten Kommandos, sofern dieses normal terminiert. Bei 
  142.      Abbruch des Kommandos durch eine Ausnahmebedingung ist der Rückga-
  143.      bewert betriebssystemabhängig (bei Abbruch durch CTRL-C unter TOS -
  144.      32 und unter Mag!x -68; unter MiNT die Signalnummer multipliziert 
  145.      mit 256; siehe k✓ki✓il✓ll✓l(1)).
  146.  
  147.   P✓Pi✓ip✓pe✓el✓li✓in✓ne✓es✓s
  148.      Eine _✓P_✓i_✓p_✓e_✓l_✓i_✓n_✓e ist eine Folge eines oder mehrerer _✓K_✓o_✓m_✓m_✓a_✓n_✓d_✓o_✓s, die 
  149.      jeweils durch das Zeichen '|' voneinander getrennt sind. Die 
  150.      Standardausgabe jedes einzelnen Kommandos (mit Ausnahme des Letz-
  151.      ten) ist mit der Standardeingabe des folgenden Kommandos verbunden. 
  152.      Dazu werden je nach Betriebssystemversion temporäre Dateien oder 
  153.      Pipes (unter MiNT) benutzt. Normalerweise werden alle Kommandos 
  154.      nacheinander ausgeführt, unter MiNT werden sie jedoch gleichzeitig 
  155.      als separate Prozesse gestartet. In diesem Fall wird auf das 
  156.      Terminieren des letzten Prozesses gewartet. Der _✓R_✓ü_✓c_✓k_✓g_✓a_✓b_✓e_✓w_✓e_✓r_✓t einer 
  157.      Pipeline ist der Rückgabewert des zuletzt ausgeführten Kommandos.
  158.  
  159.   L✓Li✓is✓st✓te✓en✓n
  160.      Eine _✓L_✓i_✓s_✓t_✓e ist eine Folge einer oder mehrerer _✓K_✓o_✓m_✓m_✓a_✓n_✓d_✓o_✓s oder 
  161.      _✓P_✓i_✓p_✓e_✓l_✓i_✓n_✓e_✓s, die durch ';', '&', '&&' oder '||' voneinander getrennt 
  162.      und optional durch ';', '&' oder <Zeilenende> abgeschlossen sind. 
  163.      Unter diesen vier Symbolen haben jeweils ';' und '&' sowie '&&' und 
  164.      '||' denselben Vorrang; dabei haben ';' und '&' den geringeren 
  165.      Vorrang als die beiden anderen Symbole.
  166.  
  167.      Das Symbol ';' erzwingt eine sequentielle Ausführung der vorherge-
  168.      henden Pipeline, bei '&' wird die Pipeline asynchron gestartet (das 
  169.      heißt, die m✓mu✓up✓pf✓fe✓el✓l wartet nicht auf die Beendigung). Wenn MiNT nicht 
  170.      installiert ist, wird '&' ignoriert.
  171.  
  172.      Das Symbol '&&' (bzw. '||') sorgt dafür, daß die auf das Symbol 
  173.      folgende Pipeline nur dann ausgeführt wird, wenn die vorhergehende 
  174.      Pipeline den Rückgabewert 0 (bzw. ungleich 0) hatte (daher auch die 
  175.      Bezeichnungen _✓U_✓n_✓d_✓-_✓L_✓i_✓s_✓t_✓e bzw. _✓O_✓d_✓e_✓r_✓-_✓L_✓i_✓s_✓t_✓e).
  176.  
  177.   Z✓Zu✓us✓sa✓am✓mm✓me✓en✓ng✓ge✓es✓se✓et✓tz✓zt✓te✓e ✓ K✓Ko✓om✓mm✓ma✓an✓nd✓do✓os✓s
  178.      Ein _✓K_✓o_✓m_✓m_✓a_✓n_✓d_✓o ist entweder ein _✓e_✓i_✓n_✓f_✓a_✓c_✓h_✓e_✓s_✓ _✓K_✓o_✓m_✓m_✓a_✓n_✓d_✓o oder eines der 
  179.      folgenden Konstrukte. Wenn nicht anders angegeben, ist der _✓R_✓ü_✓c_✓k_✓g_✓a_✓-
  180.      _✓b_✓e_✓w_✓e_✓r_✓t des Kommandos jeweils der Rückgabewert des zuletzt ausge-
  181.      führten Kommandos.
  182.  
  183.      f✓fo✓or✓r _✓N_✓a_✓m_✓e [ i✓in✓n ✓ _✓W_✓o_✓r_✓t ] ✓ d✓do✓o _✓L_✓i_✓s_✓t_✓e d✓do✓on✓ne✓e
  184.           Jedesmal, wenn das _✓f_✓o_✓r-Kommando ausgeführt wird, wird _✓N_✓a_✓m_✓e auf 
  185.           das nächste Element aus der 'in'-Liste gesetzt. Wenn 'in 
  186.           word...' ausgelassen wird, dann wird das _✓f_✓o_✓r-Kommando für 
  187.           jeden einzelnen der _✓P_✓o_✓s_✓i_✓t_✓i_✓o_✓n_✓s_✓p_✓a_✓r_✓a_✓m_✓e_✓t_✓e_✓r ausgeführt. Die Aus-
  188.           führung wird beendet, wenn die Liste vollständig abgearbeitet 
  189.           worden ist.
  190.  
  191.      c✓ca✓as✓se✓e _✓W_✓o_✓r_✓t i✓in✓n [ _✓M_✓u_✓s_✓t_✓e_✓r [ | _✓M_✓u_✓s_✓t_✓e_✓r ]... ) _✓L_✓i_✓s_✓t_✓e ;; ] ... e✓es✓sa✓ac✓c
  192.           Das _✓c_✓a_✓s_✓e-Kommando führt die diejenige Liste aus, die zu dem 
  193.           ersten Muster paßt, auf das _✓W_✓o_✓r_✓t paßt. Die Muster haben die 
  194.           gleiche Form wie bei der _✓D_✓a_✓t_✓e_✓i_✓n_✓a_✓m_✓e_✓n_✓s_✓e_✓x_✓p_✓a_✓n_✓s_✓i_✓o_✓n (siehe unten) 
  195.           mit dem Unterschied daß die Sonderbehandlung von '.', '\' etc. 
  196.           entfällt.
  197.  
  198.      i✓if✓f _✓L_✓i_✓s_✓t_✓e t✓th✓he✓en✓n _✓L_✓i_✓s_✓t_✓e [ e✓el✓li✓if✓f _✓L_✓i_✓s_✓t_✓e t✓th✓he✓en✓n _✓L_✓i_✓s_✓t_✓e ] ... [ e✓el✓ls✓se✓e _✓L_✓i_✓s_✓t_✓e ] f✓fi✓i
  199.           Die auf i✓if✓f folgende Liste wird ausgeführt. Falls sie den 
  200.           Rückgabewert Null hat, wird die Liste nach dem ersten t✓th✓he✓en✓n 
  201.           ausgeführt. Sonst wird die Liste nach e✓el✓li✓if✓f ausgeführt und bei 
  202.           Rückgabewert Null nach dem folgenden t✓th✓he✓en✓n weitergemacht. Wenn 
  203.           keine der Listen nach ✓ i✓if✓f oder e✓el✓li✓if✓f Null ergibt, wird die Liste 
  204.           nach e✓el✓ls✓se✓e ausgeführt. Wenn keine e✓el✓ls✓se✓e- oder t✓th✓he✓en✓n-Liste ausge-
  205.           führt wurde, hat das gesamte Kommando den Rückgabewert Null.
  206.  
  207.      w✓wh✓hi✓il✓le✓e _✓L_✓i_✓s_✓t_✓e d✓do✓o _✓L_✓i_✓s_✓t_✓e d✓do✓on✓ne✓e
  208.           Die w✓wh✓hi✓il✓le✓e-Liste wird fortlaufend ausgeführt, und, wenn sie den 
  209.           Rückgabewert Null hat, jeweils mit der d✓do✓o-Liste fortgefahren. 
  210.           Anderenfalls wird die Schleife abgebrochen. Wenn kein Kommando 
  211.           der d✓do✓o-Liste ausgeführt wurde, ist der Rückgabewert Null.
  212.  
  213.      u✓un✓nt✓ti✓il✓l _✓L_✓i_✓s_✓t_✓e d✓do✓o _✓L_✓i_✓s_✓t_✓e d✓do✓on✓ne✓e
  214.           Die u✓un✓nt✓ti✓il✓l-Liste wird fortlaufend ausgeführt, und, wenn sie 
  215.           einen Rückgabewert ungleich Null hat, jeweils mit der d✓do✓o-Liste 
  216.           fortgefahren. Anderenfalls wird die Schleife abgebrochen. Wenn 
  217.           kein Kommando der d✓do✓o-Liste ausgeführt wurde, ist der Rückga-
  218.           bewert Null.
  219.  
  220.      (✓( _✓L_✓i_✓s_✓t_✓e )✓)
  221.           Führt _✓L_✓i_✓s_✓t_✓e in einer Subshell aus (d.h., Änderungen am 
  222.           Variablen bleiben auf die Subshell beschränkt).
  223.  
  224.      {✓{ _✓L_✓i_✓s_✓t_✓e ;}✓}
  225.           Führt _✓L_✓i_✓s_✓t_✓e normal aus.
  226.  
  227.      _✓n_✓a_✓m_✓e (✓()✓) {✓{ _✓L_✓i_✓s_✓t_✓e ; }
  228.           Definiert eine Funktion mit dem angegebenen Namen. Der Funk-
  229.           tionsrumpf sind die in der Liste angegebenen Kommandos. Nähe-
  230.           res zur Ausführung von Funktionen siehe unten.
  231.  
  232.      Die folgenden Worte werden nur erkannt, wenn sie das erste Wort 
  233.      eines Kommandos sind und nicht gequotet werden:
  234.  
  235.      i✓if✓f t✓th✓he✓en✓n e✓el✓ls✓se✓e e✓el✓li✓if✓f f✓fi✓i c✓ca✓as✓se✓e e✓es✓sa✓ac✓c f✓fo✓or✓r w✓wh✓hi✓il✓le✓e u✓un✓nt✓ti✓il✓l d✓do✓o d✓do✓on✓ne✓e {✓{ }✓}
  236.  
  237. K✓KO✓OM✓MM✓ME✓EN✓NT✓TA✓AR✓RE✓E
  238.      Ein mit '#' beginnendes Wort und alle darauf folgenden Zeichen bis 
  239.      zum Zeilenende werden ignoriert.
  240.  
  241. Q✓QU✓UO✓OT✓TI✓IN✓NG✓G
  242.      Durch _✓Q_✓u_✓o_✓t_✓i_✓n_✓g kann man bestimmten Zeichen und Wörtern ihre spezi-
  243.      elle Bedeutung nehmen. Jedes der _✓M_✓e_✓t_✓a_✓z_✓e_✓i_✓c_✓h_✓e_✓n hat eine solche 
  244.      spezielle Bedeutung und muß daher gequotet werden, wenn es für sich 
  245.      selbst stehen soll.
  246.  
  247.      Es gibt drei verschiedene Mechanisnmen zum _✓Q_✓u_✓o_✓t_✓i_✓n_✓g: das Voransetzen 
  248.      des Escapezeichens sowie das Klammern einfache oder doppelte 
  249.      Anführungsstriche.
  250.  
  251.      Ein nicht gequotetes Prozentzeichen ('%') ist das Escapezeichen. Es 
  252.      nimmt dem unmittelbar folgenden Symbol seine spezielle Bedeutung. 
  253.      Ausnahme: wenn das folgende Zeichen ein Zeilenende-Symbol ist, wird 
  254.      es ganz ignoriert und so als Zeilenfortsetzungszeichen interpre-
  255.      tiert: so kann man überlange Zeilen in mehrere Zeilen aufteilen. 
  256.  
  257.      Achtung: in Unix-Shells ist das Escapezeichen der Backslash 
  258.      ('\')! Mit dem Kommando s✓se✓et✓t(1m) läßt sich das Escapezeichen auch 
  259.      auf '^' oder '\' umstellen!
  260.  
  261.      Einfache Anführungsstriche nehmen allen eingeschlossenen Zeichen 
  262.      ihre spezielle Bedeutung. Innerhalb einfacher Anführungsstriche 
  263.      dürfen keine weiteren einfachen Anführungsstriche auftauchen, 
  264.      selbst wenn sie vom Escape-Zeichen eingeleitet werden.
  265.  
  266.      Doppelte Anführungsstriche nehmen allen eingeschlossenen Zeichen 
  267.      bis auf
  268.  
  269.           $ ' %
  270.  
  271.      ihre spezielle Bedeutung, wbei das Escapezeichen nur dann seine 
  272.      Escape-Funktion hat, wenn es vor einem der folgenden Zeichen steht:
  273.  
  274.           $ ' " % <Zeilenende>
  275.  
  276.      Doppelter Anführungsstriche können mithilfe des Escapezeichens 
  277.      verschachtelt werden. Innerhalb doppelter Anführungsstriche haben 
  278.      die Symbole '*' und '@' eine spezielle Bedeutung (siehe unten).
  279.  
  280. P✓PA✓AR✓RA✓AM✓ME✓ET✓TE✓ER✓R
  281.      Ein _✓P_✓a_✓r_✓a_✓m_✓e_✓t_✓e_✓r kann verschiedene Werte aufnehmen und entspricht den 
  282.      Variablen konventioneller Programmiersprachen. Er kann ein 
  283.      _✓B_✓e_✓z_✓e_✓i_✓c_✓h_✓n_✓e_✓r, eine Nummer oder einer der unter S✓Sp✓pe✓ez✓zi✓ie✓el✓ll✓le✓e ✓ P✓Pa✓ar✓ra✓am✓me✓et✓te✓er✓r 
  284.      angegebenen Zeichen sein. Eine _✓V_✓a_✓r_✓i_✓a_✓b_✓l_✓e ist ein durch einen 
  285.      Bezeichner spezifizierter Parameter.
  286.  
  287.      Ein Parameter ist gesetzt, wenn ihm ein Wert zugewiesen worden ist 
  288.      (dabei sind auch leere Zeichenketten erlaubt). Ist ein Parameter 
  289.      einmal gesetzt, kann er nur durch das Kommando u✓un✓ns✓se✓et✓t(1m) wieder in 
  290.      den ungesetzten Zustand gebracht werden.
  291.  
  292.      Einer _✓V_✓a_✓r_✓i_✓a_✓b_✓l_✓e kann man durch eine Anweisung der Form
  293.  
  294.           _✓N_✓a_✓m_✓e=[_✓W_✓e_✓r_✓t]
  295.  
  296.      einen Wert zuweisen (wenn kein Wert angegeben ist, wird eine leere 
  297.      Zeichenkette zugewiesen). _✓W_✓e_✓r_✓t wird dabei zuvor folgenden Umwand-
  298.      lungen unterzogen: Tilde-, Parameter- und Variablen-Expansion, 
  299.      Kommandosubstitution und Entfernung von Quote-Zeichen. Eine Auf-
  300.      trennung in einzelne Worte findet außer bei "$@" (siehe unten) 
  301.      nicht statt.
  302.  
  303.   P✓Po✓os✓si✓it✓ti✓io✓on✓ns✓sp✓pa✓ar✓ra✓am✓me✓et✓te✓er✓r
  304.      Ein _✓P_✓o_✓s_✓i_✓t_✓i_✓o_✓n_✓s_✓p_✓a_✓r_✓a_✓m_✓e_✓t_✓e_✓r ist ein durch eine Ziffer zwischen 1 und 9 
  305.      bezeichneter Parameter. Positionsparameter werden beim Shellaufruf 
  306.      (auf die Werte der zusätzlichen Argumente) oder mittels des Kom-
  307.      mandos s✓se✓et✓t(1m) gesetzt. 
  308.  
  309.      Achtung: unmittelbar kann nur auf die ersten neun Positionspara-
  310.      meter zugegriffen werden (Ausnahme: siehe unter S✓Sp✓pe✓ez✓zi✓ie✓el✓ll✓le✓e ✓ P✓Pa✓ar✓ra✓am✓me✓e-✓-
  311.      t✓te✓er✓r). Mit s✓sh✓hi✓if✓ft✓t(1m) können sie um ein Argument 'verschoben' werden.
  312.  
  313.   S✓Sp✓pe✓ez✓zi✓ie✓el✓ll✓le✓e ✓ P✓Pa✓ar✓ra✓am✓me✓et✓te✓er✓r
  314.      Einige Parameter werden auf spezielle Art und Weise interpretiert; 
  315.      Zuweisungen an diese Parameter sind nicht möglich.
  316.  
  317.      *✓*    wird zu den Positionsparametern expandiert. Wenn die Expansion 
  318.           innerhalb doppelter Anführungsstriche passiert, ist das 
  319.           Ergebnis ein einziges Wort, in dem die einzelnen Parameter 
  320.           jeweils durch das erste Zeichen aus I✓IF✓FS✓S voneinander getrennt 
  321.           aufgeführt sind (wenn I✓IF✓FS✓S leer oder nicht gesetzt ist, werden 
  322.           Leerzeichen genommen).
  323.  
  324.      @✓@    wird ebenfalls zu den Positionsparametern expandiert. Wenn die 
  325.           Expansion innerhalb doppelter Anführungsstriche passiert, wird 
  326.           jeder Parameter zu einem separaten Wort expandiert. "$@" ist 
  327.           also zu "$1" "$2" "$3"... äquivalent. Wenn es keine Positi-
  328.           onsparameter gibt, expandiert "$@" zu Nichts, d.h. es wird 
  329.           ignoriert.
  330.  
  331.      #✓#    wird zur Anzahl (dezimal) der Positionsparameter expandiert.
  332.  
  333.      ?✓?    wird zum Rückgabewert (dezimal) des letzten ausgeführten Kom-
  334.           mandos expandiert.
  335.  
  336.      -✓-    wird zu einer Zeichenkette mit den aktuell gesetzten Shell-
  337.           flags (vom Aufruf oder per s✓se✓et✓t(1m) gesetzt) expandiert.
  338.  
  339.      $✓$    wird zur Prozeß-ID (dezimal) der aktuellen Shell expandiert.
  340.  
  341.      !✓!    wird zur Prozeß-ID (dezimal) des zuletzt ausgeführten Hinter-
  342.           grundkommandos expandiert.
  343.  
  344.      0✓0    wird zum Namen der Shell oder des Shellscripts expandiert.
  345.  
  346.   S✓Sh✓he✓el✓ll✓lv✓va✓ar✓ri✓ia✓ab✓bl✓le✓en✓n
  347.      Folgende Variablen werden von der Shell benutzt. In manchen Fällen 
  348.      werden sie auch automatisch gesetzt.
  349.  
  350.      A✓AP✓PP✓PD✓DE✓EF✓FA✓AU✓UL✓LT✓T
  351.                Defaulteinstellungen für Programme mit der Extension APP 
  352.                (siehe K✓KO✓OM✓MM✓MA✓AN✓ND✓DO✓OA✓AU✓US✓SF✓FÜ✓ÜH✓HR✓RU✓UN✓NG✓G).
  353.  
  354.      A✓AR✓RG✓GV✓V      Wird für die Übergabe von Argumenten mittels des ARGV-
  355.                Verfahrens benutzt.
  356.  
  357.      C✓CD✓DP✓PA✓AT✓TH✓H    Suchpfad für das Kommando cd(1m). Enthält eine durch ';' 
  358.                oder ',' getrennte Liste von Pfaden, in denen das Kom-
  359.                mando c✓cd✓d nach dem gewünschten Zielverzeichnis sucht.
  360.  
  361.      C✓CO✓OL✓LU✓UM✓MN✓NS✓S   Anzahl der Spalten im aktuellen Terminal. Ist nur dann 
  362.                korrekt gesetzt, wenn es sich um die Gemini-eigene Mupfel 
  363.                handelt oder die Mupfel in einem Terminalfenster läuft, 
  364.                daß die entsprechenden Systemaufrufe (F✓Fc✓cn✓nt✓tl✓l(2)) unter-
  365.                stützt (Beispiel: 'Miniwin'). Anderenfalls wird der Wert 
  366.                aus dem ererbten Environment übernommen oder aus den 
  367.                Line-A-Variablen ermittelt.
  368.  
  369.      E✓ET✓TC✓C       Hier werden Dateien gesucht, die traditionell im /etc-
  370.                Verzeichnis eines Unix-Systems gesucht werden.
  371.  
  372.      E✓ET✓TC✓CD✓DI✓IR✓R    Hier werden Dateien gesucht, die traditionell im /etc-
  373.                Verzeichnis eines Unix-Systems gesucht werden (hat 
  374.                Vorrang vor E✓ET✓TC✓C).
  375.  
  376.      G✓GE✓EM✓MD✓DE✓EF✓FA✓AU✓UL✓LT✓T
  377.                Defaulteinstellungen für GEM-Programme (siehe K✓KO✓OM✓M-✓-
  378.                M✓MA✓AN✓ND✓DO✓OA✓AU✓US✓SF✓FÜ✓ÜH✓HR✓RU✓UN✓NG✓G).
  379.  
  380.      G✓GE✓EM✓MS✓SU✓UF✓FF✓FI✓IX✓X
  381.                Kommaseparierte Liste von Extensions, an denen GEM-Pro-
  382.                gramme erkannt werden. Beispiel: prg,app,grp,acc
  383.  
  384.      H✓HI✓IS✓ST✓TF✓FI✓IL✓LE✓E  Name der Historydatei für h✓hi✓is✓st✓to✓or✓ry✓y(1m).
  385.  
  386.      H✓HO✓OM✓ME✓E      Das 'Heimatverzeichnis' des Benutzers. Defaultziel, wenn 
  387.                c✓cd✓d(1m) ohne Argumente ausgeführt wird.
  388.  
  389.      I✓IF✓FS✓S       Die Zeichen aus dem _✓I_✓n_✓t_✓e_✓r_✓n_✓a_✓l_✓ _✓F_✓i_✓e_✓l_✓d_✓ _✓S_✓e_✓p_✓a_✓r_✓a_✓t_✓o_✓r werden 
  390.                innerhalb von Eingaben als Trennzeichen benutzt (siehe 
  391.                auch r✓re✓ea✓ad✓d(1m)). Normaleinstellung ist:
  392.  
  393.                <Leerzeichen><Tabulatorzeichen><Zeilenendezeichen>
  394.  
  395.      K✓KE✓EE✓EP✓PF✓FR✓RE✓EE✓E  Soviel Speicherplatz (in Bytes!) wird beim Kopieren 
  396.                freigehalten (wenn nicht gesetzt: rund 32K).
  397.  
  398.      K✓KO✓OB✓BO✓OL✓LD✓D_✓_P✓PA✓AT✓TH✓H (nur in GEMINI)
  399.                Verzeichnis, in dem `Kobold' (sofern vorhanden) liegt.
  400.  
  401.      L✓LI✓IN✓NE✓EN✓NO✓O    Zeilennummer innerhalb des gerade ausgeführten 
  402.                Shellscripts. Diese Variable verliert ihre spezielle 
  403.                Bedeutung, wenn man ihr etwas zuweist.
  404.  
  405.      L✓LI✓IN✓NE✓ES✓S     Anzahl der Zeilen im aktuellen Terminal. Ist nur dann 
  406.                korrekt gesetzt, wenn es sich um die Gemini-eigene Mupfel 
  407.                handelt oder die Mupfel in einem Terminalfenster läuft, 
  408.                daß die entsprechenden Systemaufrufe (F✓Fc✓cn✓nt✓tl✓l(2)) unter-
  409.                stützt (Beispiel: 'Miniwin'). Anderenfalls wird der Wert 
  410.                aus dem ererbten Environment übernommen oder aus den 
  411.                Line-A-Variablen ermittelt.
  412.  
  413.      M✓MU✓UP✓PF✓FE✓EL✓L_✓_P✓PR✓RO✓OF✓FI✓IL✓LE✓E_✓_R✓RE✓EA✓AD✓D
  414.                Gesetzt, wenn die Mupfel die Datei 'profile' gelesen hat.
  415.  
  416.      O✓OL✓LD✓DP✓PW✓WD✓D    Letztes aktuelles Verzeichnis (siehe c✓cd✓d(1m)).
  417.  
  418.      O✓OP✓PT✓T_✓_n✓na✓am✓me✓e_✓_e✓ex✓xt✓t
  419.                Einstellungen für das Programm 'name.ext' (siehe K✓KO✓OM✓M-✓-
  420.                M✓MA✓AN✓ND✓DO✓OA✓AU✓US✓SF✓FÜ✓ÜH✓HR✓RU✓UN✓NG✓G).
  421.  
  422.      O✓OP✓PT✓TI✓IO✓ON✓NP✓PA✓AT✓TH✓H
  423.                Enthält den Namen des Verzeichnisses, das die Optionsda-
  424.                teien enthält (siehe unter Z✓ZE✓EI✓IL✓LE✓EN✓NE✓ED✓DI✓IT✓TO✓OR✓R: O✓Op✓pt✓ti✓io✓on✓ns✓sk✓ko✓om✓mp✓pl✓le✓et✓t-✓-
  425.                t✓ti✓ie✓er✓ru✓un✓ng✓g).
  426.  
  427.      P✓PA✓AT✓TH✓H      Suchpfad für Kommandos. Enthält eine durch ';' oder ',' 
  428.                getrennte Liste von Pfaden, in denen nach Kommandos 
  429.                gesucht wird (siehe K✓KO✓OM✓MM✓MA✓AN✓ND✓DO✓OA✓AU✓US✓SF✓FÜ✓ÜH✓HR✓RU✓UN✓NG✓G).
  430.  
  431.      P✓PS✓S1✓1       Der Wert dieser Variable wird expandiert und als Prompt-
  432.                zeichen benutzt (siehe P✓PR✓RO✓OM✓MP✓PT✓TI✓IN✓NG✓G).
  433.  
  434.      P✓PS✓S2✓2       Der Wert dieser Variable wird expandiert und als sekun-
  435.                däres Promptzeichen benutzt (siehe P✓PR✓RO✓OM✓MP✓PT✓TI✓IN✓NG✓G).
  436.  
  437.      P✓PS✓S4✓4       Der Wert dieser Variable wird expandiert und vor jeder 
  438.                Trace-Ausgabe (siehe Shelloption -x) auf dem Bildschirm 
  439.                ausgegeben. Beispiel:
  440.  
  441.                PS4='[$LINENO]+ '
  442.  
  443.                Standardwert ist '+ '.
  444.  
  445.      P✓PW✓WD✓D       Aktuelles Verzeichnis (siehe c✓cd✓d(1m)).
  446.  
  447.      R✓RE✓EP✓PL✓LY✓Y     Wird von r✓re✓ea✓ad✓d(1m) gesetzt, wenn kein Variablenname ange-
  448.                geben wurde.
  449.  
  450.      R✓RO✓OW✓WS✓S      Entspricht L✓LI✓IN✓NE✓ES✓S und ist nur aus Gründen der Kompatibi-
  451.                lität mit alten Mupfel-Versionen vorhanden.
  452.  
  453.      S✓SC✓CR✓RA✓AP✓PD✓DI✓IR✓R (nur in Gemini)
  454.                Wenn das GEM-Klemmbrett-Verzeichnis bei Geminis Pro-
  455.                grammstart noch nicht initialisiert ist, wird es auf 
  456.                das hier angegebene Verzeichnis gesetzt.
  457.  
  458.      S✓SE✓EC✓CO✓ON✓ND✓DS✓S   Anzahl der Sekunden seit Aufruf der Shell. Diese Variable 
  459.                verliert ihre spezielle Bedeutung, wenn man ihr einen 
  460.                Wert zuweist.
  461.  
  462.      S✓SH✓HE✓EL✓LL✓L     Vollständiger Name der Kommandoshell. Wird von einer 
  463.                interaktiven Mupfel automatisch initialisiert, wenn nicht 
  464.                schon vorher gesetzt.
  465.  
  466.      S✓ST✓TD✓DE✓ER✓RR✓R    Das Vorhandensein dieser Variable signalisiert 
  467.                gestarteten Programmen, daß die Mupfel den GEMDOS-Kanal 2 
  468.                (stderr) bereits für die Ausgabe von Fehlermeldungen 
  469.                initialisiert hat.
  470.  
  471.      S✓SU✓UF✓FF✓FI✓IX✓X    Kommaseparierte Liste von Extensions, an denen ausführ-
  472.                bare Programme erkannt werden. Beispiel:
  473.  
  474.                ttp,mup,prg,app,tos,acc,gtp
  475.  
  476.                Achtung: auch leere Suffixe sind erlaubt!
  477.  
  478.      T✓TE✓ER✓RM✓M (nur in Gemini)
  479.                Wird für Programme gesetzt, die innerhalb der Gemini-
  480.                Konsole ablaufen und enthält den Namen der 
  481.                Terminalemulation.
  482.  
  483.      T✓TE✓ER✓RM✓MC✓CA✓AP✓P (nur in Gemini)
  484.                Enthält eine Beschreibung der vom VT52-Emulator der 
  485.                Gemini-Konsole unterstützten Escape-Sequenzen (siehe 
  486.                t✓te✓er✓rm✓mc✓ca✓ap✓p(5)).
  487.  
  488.      T✓TH✓HR✓RA✓AS✓SH✓HD✓DI✓IR✓R (nur in Gemini)
  489.                Zugriffspfad für das Verzeichnis, für das das Papierkorb-
  490.                Symbol steht.
  491.  
  492.      T✓TM✓MP✓PD✓DI✓IR✓R    Temporäres Verzeichnis für Hilfsdateien. Wird zum Bei-
  493.                spiel für Pipelines benötigt, wenn das benutzte 
  494.                Betriebsystem keine echten Pipes unterstützt.
  495.  
  496.      T✓TO✓OP✓PW✓WI✓IN✓ND✓D (nur in Gemini)
  497.                Pfad des Gemini-Verzeichnisfensters, das zuletzt 'oben' 
  498.                war.
  499.  
  500.      T✓TO✓OS✓SD✓DE✓EF✓FA✓AU✓UL✓LT✓T
  501.                Defaulteinstellungen für TOS-Programme (siehe K✓KO✓OM✓M-✓-
  502.                M✓MA✓AN✓ND✓DO✓OA✓AU✓US✓SF✓FÜ✓ÜH✓HR✓RU✓UN✓NG✓G).
  503.  
  504. E✓EX✓XP✓PA✓AN✓NS✓SI✓IO✓ON✓N
  505.      Unter _✓E_✓x_✓p_✓a_✓n_✓s_✓i_✓o_✓n versteht man die textuelle Ersetzung bestimmter 
  506.      Teile der Eingabe durch ihren 'Wert'. Sie findet statt, nachdem die 
  507.      Eingabezeile in einzelne Worte aufgeteilt worden ist. Folgende 
  508.      Formen von Expansion werden durchgeführt: _✓T_✓i_✓l_✓d_✓e_✓-_✓E_✓x_✓p_✓a_✓n_✓s_✓i_✓o_✓n, _✓P_✓a_✓r_✓a_✓m_✓e_✓-
  509.      _✓t_✓e_✓r_✓- und _✓V_✓a_✓r_✓i_✓a_✓b_✓l_✓e_✓n_✓-_✓E_✓x_✓p_✓a_✓n_✓s_✓i_✓o_✓n, _✓K_✓o_✓m_✓m_✓a_✓n_✓d_✓o_✓s_✓u_✓b_✓s_✓i_✓t_✓u_✓t_✓i_✓o_✓n, _✓W_✓o_✓r_✓t_✓t_✓r_✓e_✓n_✓n_✓u_✓n_✓g und 
  510.      _✓D_✓a_✓t_✓e_✓i_✓n_✓a_✓m_✓e_✓n_✓s_✓-_✓E_✓x_✓p_✓a_✓n_✓s_✓i_✓o_✓n.
  511.  
  512.      Dabei ändert sich die Anzahl der Worte ändert ausschließlich durch 
  513.      _✓W_✓o_✓r_✓t_✓t_✓r_✓e_✓n_✓n_✓u_✓n_✓g und _✓D_✓a_✓t_✓e_✓i_✓n_✓a_✓m_✓e_✓n_✓s_✓-_✓E_✓x_✓p_✓a_✓n_✓s_✓i_✓o_✓n. Die einzige Ausnahme für 
  514.      diese Regel ist die Expansion von "$@" (siehe oben).
  515.  
  516.   T✓Ti✓il✓ld✓de✓ee✓ex✓xp✓pa✓an✓ns✓si✓io✓on✓n
  517.      Wenn ein Wort nur aus '~' (Tilde) besteht oder mit '~\' beginnt 
  518.      (jeweils vollständig ungequoted), dann wird die Tilde durch den 
  519.      Wert der Environmentvariable HOME ersetzt. Wenn HOME leer oder 
  520.      nicht gesetzt ist, sind die Resultate unspezifiert.
  521.  
  522.   P✓Pa✓ar✓ra✓am✓me✓et✓te✓er✓r-✓-E✓Ex✓xp✓pa✓an✓ns✓si✓io✓on✓n
  523.      Das Zeichen '$' leitet eine Parameter-Expansion oder eine Kommando-
  524.      Substition ein. Zur Parameter-Expansion braucht das zu expandie-
  525.      rende Symbol nicht geklammert zu sein. Es dürfen allerdings 
  526.      geschweifte Klammern benutzt werden, wenn sonst eine Verwechslung 
  527.      zwischen Parametername und nachfolgendem Text auftreten könnte:
  528.  
  529.      ${_✓P_✓a_✓r_✓a_✓m_✓e_✓t_✓e_✓r}
  530.           Der Wert von _✓P_✓a_✓r_✓a_✓m_✓e_✓t_✓e_✓r wird eingefügt.
  531.  
  532.      In allen folgenden Beispielen wird _✓W_✓o_✓r_✓t einer Tilde-Expansion, 
  533.      Parameter-Expansion und Kommando-Substitution unterworfen.
  534.  
  535.      ${_✓P_✓a_✓r_✓a_✓m_✓e_✓t_✓e_✓r:-_✓W_✓o_✓r_✓t}
  536.           Default-Werte benutzen: Wenn _✓P_✓a_✓r_✓a_✓m_✓e_✓t_✓e_✓r nicht gesetzt oder leer 
  537.           ist, wird die Expansion von _✓W_✓o_✓r_✓t eingesetzt. Ansonsten wird 
  538.           der Wert von _✓P_✓a_✓r_✓a_✓m_✓e_✓t_✓e_✓r eingefügt.
  539.  
  540.      ${_✓P_✓a_✓r_✓a_✓m_✓e_✓t_✓e_✓r-_✓W_✓o_✓r_✓t}
  541.           Default-Werte benutzen: Wenn _✓P_✓a_✓r_✓a_✓m_✓e_✓t_✓e_✓r nicht gesetzt ist, wird 
  542.           die Expansion von _✓W_✓o_✓r_✓t eingesetzt. Ansonsten wird der Wert von 
  543.           _✓P_✓a_✓r_✓a_✓m_✓e_✓t_✓e_✓r eingefügt.
  544.  
  545.      ${_✓P_✓a_✓r_✓a_✓m_✓e_✓t_✓e_✓r:=_✓W_✓o_✓r_✓t}
  546.           Default-Werte zuweisen: Wenn _✓P_✓a_✓r_✓a_✓m_✓e_✓t_✓e_✓r nicht gesetzt oder leer 
  547.           ist, wird ihm die Expansion von _✓W_✓o_✓r_✓t zugewiesen. Anschließend 
  548.           wird der Wert von _✓P_✓a_✓r_✓a_✓m_✓e_✓t_✓e_✓r eingefügt. Positionsparameter und 
  549.           spezielle Parameter können auf diese Art und Weise nicht 
  550.           verändert werden.
  551.  
  552.      ${_✓P_✓a_✓r_✓a_✓m_✓e_✓t_✓e_✓r=_✓W_✓o_✓r_✓t}
  553.           Default-Werte zuweisen: Wenn _✓P_✓a_✓r_✓a_✓m_✓e_✓t_✓e_✓r nicht gesetzt ist, wird 
  554.           ihm die Expansion von _✓W_✓o_✓r_✓t zugewiesen. Anschließend wird der 
  555.           Wert von _✓P_✓a_✓r_✓a_✓m_✓e_✓t_✓e_✓r eingefügt. Positionsparameter und spezielle 
  556.           Parameter können auf diese Art und Weise nicht verändert 
  557.           werden.
  558.  
  559.      ${_✓P_✓a_✓r_✓a_✓m_✓e_✓t_✓e_✓r:?_✓W_✓o_✓r_✓t}
  560.           Fehler anzeigen, falls leer oder nicht gesetzt: Wenn _✓P_✓a_✓r_✓a_✓m_✓e_✓t_✓e_✓r 
  561.           nicht gesetzt oder leer ist, wird die Expansion von _✓W_✓o_✓r_✓t als 
  562.           Fehlermeldung ausgegeben (und eine nicht-interaktive Shell 
  563.           abgebrochen). Anderenfalls wird der Wert von _✓P_✓a_✓r_✓a_✓m_✓e_✓t_✓e_✓r einge-
  564.           fügt.
  565.  
  566.      ${_✓P_✓a_✓r_✓a_✓m_✓e_✓t_✓e_✓r?_✓W_✓o_✓r_✓t}
  567.           Fehler anzeigen, falls nicht gesetzt: Wenn _✓P_✓a_✓r_✓a_✓m_✓e_✓t_✓e_✓r nicht 
  568.           gesetzt leer ist, wird die Expansion von _✓W_✓o_✓r_✓t als Fehlermel-
  569.           dung ausgegeben (und eine nicht-interaktive Shell abgebro-
  570.           chen). Anderenfalls wird der Wert von _✓P_✓a_✓r_✓a_✓m_✓e_✓t_✓e_✓r eingefügt.
  571.  
  572.      ${_✓P_✓a_✓r_✓a_✓m_✓e_✓t_✓e_✓r:+_✓W_✓o_✓r_✓t}
  573.           Ersatzwert benutzen: Wenn _✓P_✓a_✓r_✓a_✓m_✓e_✓t_✓e_✓r nicht gesetzt oder leer 
  574.           ist, wird nichts eingefügt. Anderenfalls wird die Expansion 
  575.           von _✓W_✓o_✓r_✓t eingesetzt.
  576.  
  577.      ${_✓P_✓a_✓r_✓a_✓m_✓e_✓t_✓e_✓r+_✓W_✓o_✓r_✓t}
  578.           Ersatzwert benutzen: Wenn _✓P_✓a_✓r_✓a_✓m_✓e_✓t_✓e_✓r nicht gesetzt ist, wird 
  579.           nichts eingefügt. Anderenfalls wird die Expansion von _✓W_✓o_✓r_✓t 
  580.           eingesetzt.
  581.  
  582.      ${#_✓P_✓a_✓r_✓a_✓m_✓e_✓t_✓e_✓r}
  583.           Fügt die Stringlänge von _✓P_✓a_✓r_✓a_✓m_✓e_✓t_✓e_✓r ein. Das Ergebnis ist 
  584.           unspezifiert, wenn _✓P_✓a_✓r_✓a_✓m_✓e_✓t_✓e_✓r * oder @ ist.
  585.  
  586.      ${_✓P_✓a_✓r_✓a_✓m_✓e_✓t_✓e_✓r#_✓W_✓o_✓r_✓t}
  587.      ${_✓P_✓a_✓r_✓a_✓m_✓e_✓t_✓e_✓r##_✓W_✓o_✓r_✓t}
  588.      ${_✓P_✓a_✓r_✓a_✓m_✓e_✓t_✓e_✓r%_✓W_✓o_✓r_✓t}
  589.      ${_✓P_✓a_✓r_✓a_✓m_✓e_✓t_✓e_✓r%%_✓W_✓o_✓r_✓t}
  590.           tuts nicht.
  591.  
  592.  
  593. K✓Ko✓om✓mm✓ma✓an✓nd✓do✓os✓su✓ub✓bs✓st✓ti✓it✓tu✓ut✓ti✓io✓on✓n
  594.      Die Shell kann innerhalb einer Zeichenkette Kommandos durch deren 
  595.      Ausgaben ersetzen. Dazu setzt man die auszuwertenden Kommandos in 
  596.      Backquotes (`...`) oder klammert sie wie folgt: $( ... ). Zei-
  597.      lenende-Zeichen am Ende der Ausgabe der Kommandos werden entfernt.
  598.  
  599. ... to be continued ...     
  600.  
  601. W✓Wo✓or✓rt✓tt✓tr✓re✓en✓nn✓nu✓un✓ng✓g
  602. D✓Da✓at✓te✓ei✓in✓na✓am✓me✓en✓ns✓se✓ex✓xp✓pa✓an✓ns✓si✓io✓on✓n
  603. E✓En✓nt✓tf✓fe✓er✓rn✓nu✓un✓ng✓g ✓ v✓vo✓on✓n ✓ Q✓Qu✓uo✓ot✓te✓es✓s
  604.  
  605. U✓UM✓ML✓LE✓EN✓NK✓KU✓UN✓NG✓G
  606. E✓Ei✓in✓ng✓ga✓ab✓be✓eu✓um✓ml✓le✓en✓nk✓ku✓un✓ng✓g
  607. A✓Au✓us✓sg✓ga✓ab✓be✓eu✓um✓ml✓le✓en✓nk✓ku✓un✓ng✓g
  608. A✓Au✓us✓sg✓ga✓ab✓be✓eu✓um✓ml✓le✓en✓nk✓ku✓un✓ng✓g ✓ m✓mi✓it✓t ✓ A✓An✓nh✓hä✓än✓ng✓ge✓en✓n
  609. A✓Au✓us✓sg✓ga✓ag✓ge✓eu✓um✓ml✓le✓en✓nk✓ku✓un✓ng✓g ✓ v✓vo✓on✓n ✓ F✓Fe✓eh✓hl✓le✓er✓rm✓me✓el✓ld✓du✓un✓ng✓ge✓en✓n
  610. H✓He✓er✓re✓e-✓-D✓Do✓ok✓ku✓um✓me✓en✓nt✓te✓e
  611.  
  612. F✓FU✓UN✓NK✓KT✓TI✓IO✓ON✓NE✓EN✓N
  613.  
  614. A✓AL✓LI✓IA✓AS✓SE✓E
  615.  
  616. J✓JO✓OB✓B-✓-K✓KO✓ON✓NT✓TR✓RO✓OL✓LL✓LE✓E
  617.  
  618. S✓SI✓IG✓GN✓NA✓AL✓LE✓E
  619.  
  620. K✓KO✓OM✓MM✓MA✓AN✓ND✓DO✓OA✓AU✓US✓SF✓FÜ✓ÜH✓HR✓RU✓UN✓NG✓G
  621.  
  622. E✓EN✓NV✓VI✓IR✓RO✓ON✓NM✓ME✓EN✓NT✓T
  623.  
  624. E✓EX✓XI✓IT✓T ✓ S✓ST✓TA✓AT✓TU✓US✓S
  625.  
  626. P✓PR✓RO✓OM✓MP✓PT✓TS✓S
  627.  
  628. Z✓ZE✓EI✓IL✓LE✓EN✓NE✓ED✓DI✓IT✓TO✓OR✓R
  629.  
  630. E✓EI✓IN✓NG✓GE✓EB✓BA✓AU✓UT✓TE✓E ✓ K✓KO✓OM✓MM✓MA✓AN✓ND✓DO✓OS✓S
  631.  
  632.  
  633.  
  634. A✓AU✓UT✓TO✓OR✓R
  635.      Mupfel: Copyright (c)
  636.      Stefan Eissing (se@ac.maus.de)
  637.  
  638.      Dokumentation: Copyright (c) 9. August 1994
  639.      Julian F. Reschke (jr@ms.maus.de)
  640.  
  641. S✓SI✓IE✓EH✓HE✓E ✓ A✓AU✓UC✓CH✓H
  642.      mupftool(1), progtool(1), texttool(1)
  643.  
  644.